package com.cntcdt.api.db.model.base;

import java.io.Serializable;
import java.sql.ResultSet;
import java.util.Date;

/**
 * 这是cdt_device_exception的数据传输对象基类,直接与表对应<br>
 */
public abstract class DeviceExceptionModelBase  implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 属性:id<br>
     */
    private Integer id = 0;
    /**
     * 属性:仓道的位置<br>
     * 含义:仓道的位置<br>
     */
    private String position = "";
    /**
     * 属性:异常代码<br>
     * 含义:异常代码<br>
     */
    private Integer errCode = 0;
    /**
     * 属性:所属的机器<br>
     * 含义:所属的机器<br>
     */
    private String terminal = "";
    /**
     * 属性:添加的时间<br>
     * 含义:添加的时间<br>
     */
    private Date addTime = new Date();
    /**
     * 属性:对应cdt_device表的id<br>
     * 含义:对应cdt_device表的id<br>
     */
    private Integer deviceId = 0;
    /**
     * 属性:修复的时间<br>
     * 含义:修复的时间<br>
     */
    private Date repairTime = new Date();

    /**
     *  默认构造方法,构造一个默认的DeviceExceptionModelBase对象
     */
    public DeviceExceptionModelBase(){
    }

    /**
     *  构造函数
     *  @param rs 数据库查询结果集
     */
    public DeviceExceptionModelBase(ResultSet rs){
           try{
               this.id = rs.getInt("id");
               this.position = rs.getString("position");
               this.errCode = rs.getInt("errCode");
               this.terminal = rs.getString("terminal");
               this.addTime = rs.getDate("addTime");
               this.deviceId = rs.getInt("deviceId");
               this.repairTime = rs.getDate("repairTime");
           }catch(Exception e) {
              e.printStackTrace(); 
           }
    }


    /**
     * 设置属性id<br>
     * @param id 待设置的属性id的值
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获取属性id<br>
     * @return 属性id的值
     */
    public Integer getId() {
        return id;
    }

    /**
     * 设置属性仓道的位置<br>
     * 含义:仓道的位置<br>
     * @param position 待设置的属性仓道的位置的值
     */
    public void setPosition(String position) {
        this.position = position;
    }

    /**
     * 获取属性仓道的位置<br>
     * 含义:仓道的位置<br>
     * @return 属性仓道的位置的值
     */
    public String getPosition() {
        return position;
    }

    /**
     * 设置属性异常代码<br>
     * 含义:异常代码<br>
     * @param errCode 待设置的属性异常代码的值
     */
    public void setErrCode(Integer errCode) {
        this.errCode = errCode;
    }

    /**
     * 获取属性异常代码<br>
     * 含义:异常代码<br>
     * @return 属性异常代码的值
     */
    public Integer getErrCode() {
        return errCode;
    }

    /**
     * 设置属性所属的机器<br>
     * 含义:所属的机器<br>
     * @param terminal 待设置的属性所属的机器的值
     */
    public void setTerminal(String terminal) {
        this.terminal = terminal;
    }

    /**
     * 获取属性所属的机器<br>
     * 含义:所属的机器<br>
     * @return 属性所属的机器的值
     */
    public String getTerminal() {
        return terminal;
    }

    /**
     * 设置属性添加的时间<br>
     * 含义:添加的时间<br>
     * @param addTime 待设置的属性添加的时间的值
     */
    public void setAddTime(Date addTime) {
        this.addTime = addTime;
    }

    /**
     * 获取属性添加的时间<br>
     * 含义:添加的时间<br>
     * @return 属性添加的时间的值
     */
    public Date getAddTime() {
        return addTime;
    }

    /**
     * 设置属性对应cdt_device表的id<br>
     * 含义:对应cdt_device表的id<br>
     * @param deviceId 待设置的属性对应cdt_device表的id的值
     */
    public void setDeviceId(Integer deviceId) {
        this.deviceId = deviceId;
    }

    /**
     * 获取属性对应cdt_device表的id<br>
     * 含义:对应cdt_device表的id<br>
     * @return 属性对应cdt_device表的id的值
     */
    public Integer getDeviceId() {
        return deviceId;
    }

    /**
     * 设置属性修复的时间<br>
     * 含义:修复的时间<br>
     * @param repairTime 待设置的属性修复的时间的值
     */
    public void setRepairTime(Date repairTime) {
        this.repairTime = repairTime;
    }

    /**
     * 获取属性修复的时间<br>
     * 含义:修复的时间<br>
     * @return 属性修复的时间的值
     */
    public Date getRepairTime() {
        return repairTime;
    }


    /**
     * 比较两个对象在逻辑上是否相等
     * @see java.lang.Object#equals(java.lang.Object)
     */
    public boolean equals(Object other) {
        if (this == other) {
            return true;
        }
        if (!(other instanceof DeviceExceptionModelBase)) {
            return false;
        }

        final DeviceExceptionModelBase otherModel = (DeviceExceptionModelBase) other;
        if (getId()!=null && !getId().equals(otherModel.getId())) {
            return false;
        }
        return true;
    }

    /**
     * 根据主键生成HashCode
     * @see java.lang.Object#hashCode()
     */
    public int hashCode() {
        StringBuffer buffer = new StringBuffer();
        buffer.append('|').append(id);
        return buffer.toString().hashCode();
    }
}
